package uva.sc.ql.gui.helpers; import java.util.Map; import uva.sc.ql.atom.BooleanAtom; import uva.sc.ql.atom.ID; import uva.sc.ql.evaluator.EvaluatorVisitor; import uva.sc.ql.expression.Expression; @SuppressWarnings({ "rawtypes" }) public class QuestionData { private Expression value; private Expression visibility; public Expression getValue() { return value; } public Expression getVisibility() { return visibility; } public QuestionData(Expression value) { this.value = value; } public QuestionData(Expression value, Expression visibility) { this.value = value; this.visibility = visibility; } public boolean evaluateVisibility(Map<ID, QuestionData> valuesTable) { BooleanAtom result = new BooleanAtom(true); if (visibility != null) { EvaluatorVisitor evalVisitor = new EvaluatorVisitor(valuesTable); result = (BooleanAtom) evalVisitor.evaluateExpression(visibility); } return result.getValue(); } public Expression evaluateValue(Map<ID, QuestionData> valuesTable) { EvaluatorVisitor evalVisitor = new EvaluatorVisitor(valuesTable); Expression result = null; if (value != null) { result = evalVisitor.evaluateExpression(value); } return result; } }